Digital Signature verification is a well-defined process which is implemented according to internationally-defined specifications. These are detailed in Section 2.1 below. Digital Certificate validation, however, can be implemented using a number of different mechanisms. Examples of these are documented in Section 2.2 and its associated sub-sections below.
2.1 Digital Signature Verification
Digital signature verification makes use of mathematical cryptography in order to verify the integrity of a document and to associate a signer with a signed document. The mathematics used for digital signatures is sufficiently strong to render the generation of a fraudulent signature mathematically infeasible.
The following sub-sections define, at a technical level, typical steps involved in digital signature verification.
1. A digest of the signed data is produced through the use of a cryptographic hashing function. A cryptographic hashing function is a one-way mathematical function which produces an output which is linked its input in such a way that an alternative input is highly unlikely to produce the same output. The output of a cryptographic hashing function is called a “hash” and it is generally shorter in length than the corresponding input. Examples of hashing algorithms include SHA-1 and MD-5. It is important that the data is hashed using the same data hashing function as that used by the sender.
2. The recipient uses the customer's public key to decrypt the signature and the hash.
3. If the two hashes—the hash that was encrypted by the signer and the hash produced by the recipient—are identical, then the integrity of the data is validated.
The process described in these three steps is mathematical and is independent of the Digital Certificate Processing stage described in Section 2.1 below.
2.2 Digital Certificate Processing
A digital certificate is a digital document that verifies the identity of a person or entity. The digital certificate contains what is termed the signer's public key. This public key is part of a key pair which consists of both a public key and a private key. These two keys are uniquely linked. The private key is used to digitally sign an electronic document, and the public key (contained in or referenced by a digital certificate) is used to verify the digital signature. In both cases—signature generation and signature validation—the same underlying asymmetric key cryptography is used. Further details are found in U.S. Pat. No. 4,405,829.
As well as a public key, digital certificates contain information that relates to the entity to which the certificate is linked. This information may be stored in a structured format, and some digital certificates conform to a standard, X.509, for the storage of this identification information. When a digitally signed electronic document is received, the digital signature may include a digital certificate. This digital certificate may be checked for validity. A digital certificate is marked invalid if the unique relationship of the public and private key pair to the signer comes into doubt. An example of a digital certificate's validity being in doubt is a compromise of the confidentiality of a private key pass-phrase. This means that the signer is no longer the only person who could sign documents with that private key.
In addition, a digital certificate may be invalid if the recipient does not trust the sender, or does not trust the Certificate Authority which issued their digital certificate. The sender is identified by their Digital Certificate. A Digital Certificate may contain a reference to the Certificate Authority which issued the certificate. This Certificate Authority may not be trusted by the document recipient.
A Digital Certificate may be revoked, meaning that the certificate is registered as being no longer valid, using a third party certificate store that is available over a computer network. Because of this reliance on an online certificate registry, generally implemented using the X.500 directory protocol, the certificate validation stage typically requires a network connection, although it will be appreciated that it may be implemented on the same machine.
Different techniques are known for certificate validation, examples of which are described in sections 2.2.1 to 2.2.3 below.
2.2.1 Certificate Revocation List (CRL)
A Certificate Revocation List (CRL) is an electronic listing of invalid and revoked certificates. This list is generally stored in a hierarchical directory conforming to the X.500 standard. The list is generally checked using the LDAP (Lightweight Directory Access Protocol) protocol.
2.2.2 Online Certificate Status Protocol (OCSP)
OCSP is used to verify the status of a digital certificate. OCSP operates by checking multiple Certificate Revocation Lists (see above) and storing the results. The act of checking a single OCSP Responder is therefore more efficient than checking multiple Certificate Revocation Lists sequentially.
2.2.3 extensible Key Management Protocol (XKMS)
XKMS specifies protocols for distributing and registering public keys, suitable for use in conjunction with the proposed XML Signature recommendation [XML-DSIG] developed jointly by the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF). The XML Key Management Specification (XKMS) comprises two parts—the XML Key Information Service Specification (X-KISS) and the XML Key Registration Service Specification (X-KRSS).
The X-KISS specification defines a protocol for a Trust service that resolves public key information contained in XML signature elements, as defined by the W3C and the IETF. The X-KISS protocol allows a client of such a service to delegate part or all of the tasks required to process XML certificate details contained within X509Certificate tags. The underlying certificate validity method may be one or other of (2.2.1) and (2.2.2) above.
2.2 Document Structure Validation
This process involves verifying an electronic document against a set of structural rules; the structural rules being rules pertaining to the document. An example of document structural rule is XML document validation—whereby a document must contain appropriately-formatted mark-up which must conform to certain structural rules—concerning ordering and nesting, for example.
2.4 Document Syntactic Verification
An electronic document is syntactically valid if it conforms to certain syntactic rules. For XML, these rules may be expressed in a document called a Document Type Definition (DTD). DTD documents contain rules concerning the specific mark-up tags that may be located in an XML document, their order, and their hierarchy.
FIG. 1 shows a traditional flow operation utilised in verification of signatures and certificates and also for checking a document structure validity. A document is received (step 100). Such retrieval, it will be appreciated, may comprise the receipt of a new document at a verification processor or a retrieval of a previously stored document from a datastore for subsequent verification and authentication. The digital signature is extracted from the document (Step 110), in accordance with known principles. On extraction from the document, the verification engine effects a connection to a third party service so as to effect a verification of the validity of the digital certificate (Step 120). The confirmation of the validity of the certificate, allows the processing to continue so as to effect a verification of the signature against the document (Step 130). Again, the specific operation of the steps will be well known to those skilled in the art.
Once the certificate and signature associated with a document have been verified then the actual structure of the document is checked (Step 140). This checking ensures that the identified document conforms to a set of structural rules consistent with that document type. The document may now be checked for syntactic validity which checks the document syntax within the identified document and confirms that the syntax conforms to a set of rules specific for syntax appropriate for that document type. In the case of an XML type document, the document structure will be checked against defined document structural rules for XML documents, whereas the syntactic validity is a check on the syntax used within the document against a document type definition specific for that XML type document.
It will be appreciated from the discussion above and the steps outlined in FIG. 1, that this known method for verifying a document requires a number of sequential steps. A specific sequential order of steps has been outlined for convenience of explanation and it will be appreciated that the order of the sequential steps may be changed without departing from the known methodology. If the document fails any of the tests listed above then the document is considered invalid. It will be appreciated that the document may proceed through any number of steps only to fail the final step. Such a failure at any one of the steps outlined in the verification process terminates the process and rejects the document. As such, the system of the prior art may have processed much of the information relating to the verification only to finally reject the document. If this occurs, processing time and resources have been wasted. There is, therefore, a need for a system and method that will allow for an improved processing of signatures associated with digital documents.